const args = require('minimist')(process.argv.slice(2));
const { build } = require('esbuild');
const { resolve } = require('path');

const target = args._[0] || 'reactivity';
const format = args.f || 'global';

// 开发环境只打包某一个
const pkg = require(resolve(__dirname, `../packages/${target}/package.json`));
// 输出格式
const outpuFormat = format.startsWith('global') ? 'iife' : format === 'cjs' ? 'cjs' : 'esm';
// 输出目录
const outfile = resolve(__dirname,`../packages/${target}/dist/${target}.${format}.js`);

// 天生支持ts
build({
  entryPoints:[resolve(__dirname,`../packages/${target}/src/index.ts`)],
  outfile, // 输出地址
  bundle:true, // 把所有的包全部打包到一起
  sourcemap:true, // 要sourcemap
  format:outpuFormat, // 打包格式
  globalName:pkg.buildOptions?.name, // 打包全局的名字
  platform:format === 'cjs' ? 'node' : 'browser', // 平台
  watch:{
    // 监听文件变化
    onRebuild(error){
      if(!error) console.log("rebuilt~~~~~")
    }
  }
}).then(()=>{
  console.log('watching~~~~~')
})